#pragma once

#include "Common.h"
#include "BaseScanGroup.h"
#include <CL\cl.h>

namespace GPUCC
{
	class ScanGroup : public BaseScanGroup
	{
	public:
		ScanGroup(unsigned int Size, unsigned int MaxItemSize, KernelHandler& Handler, cl::Program* prog, cl::Context* context, cl::CommandQueue* queue);
		virtual ~ScanGroup();

		virtual void Scan();

	protected:
		virtual void AddItemInfo(unsigned int Size);

	private:
		static void CL_CALLBACK hash_read(cl_event event, cl_int command_exec_status, void* user_data);
	};
}